home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 November / Macworld (1999-11).dmg / Updaters / WhiteCap 3.0.4 / WhiteCap Source.sit / WhiteCap Source / Common / General Tools / FileSpecList.cpp < prev    next >
C/C++ Source or Header  |  1999-07-13  |  1KB  |  69 lines

  1. #include "FileSpecList.h"
  2.  
  3. #include "CEgFileSpec.h"
  4.  
  5.  
  6.  
  7.  
  8. FileSpecList::FileSpecList( XStrListOptsT inOption, ListOrderingT inOrdering ) :
  9.     mSpecs( cOrderImportant ),
  10.     mSpecNames( inOption, inOrdering ) {
  11.     
  12. }
  13.  
  14.  
  15.  
  16. FileSpecList::~FileSpecList() {
  17.     RemoveAll();
  18. }
  19.  
  20.  
  21.  
  22. void FileSpecList::RemoveAll() {
  23.     CEgFileSpec* spec;
  24.     
  25.     while ( mSpecs.FetchLast( &spec ) ) {
  26.         delete spec;
  27.         mSpecs.RemoveLast();
  28.     }
  29.     
  30.     mSpecNames.RemoveAll();
  31. }
  32.  
  33.  
  34.  
  35. long FileSpecList::AddCopy( const CEgFileSpec& inSpec ) {
  36.     UtilStr name;
  37.     long idx;
  38.     
  39.     inSpec.GetFileName( name );
  40.     idx = mSpecNames.Add( name );
  41.     if ( idx > 0 ) 
  42.         mSpecs.Add( new CEgFileSpec( inSpec ), idx - 1 );
  43.         
  44.     return idx;
  45. }
  46.  
  47.  
  48. const CEgFileSpec* FileSpecList::FetchSpec( int inIndex ) const {
  49.     return (CEgFileSpec*) mSpecs.Fetch( inIndex );
  50. }
  51.  
  52.  
  53. bool FileSpecList::FetchSpecName( int inIndex, UtilStr& outStr ) const {
  54.     return mSpecNames.Fetch( inIndex, outStr );
  55. }
  56.  
  57. const UtilStr* FileSpecList::FetchSpecName( int inIndex ) const {
  58.     return mSpecNames.Fetch( inIndex );
  59. }
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66. long FileSpecList::Lookup( UtilStr& inName ) const {
  67.     return mSpecNames.FindIndexOf( inName );
  68. }
  69.